The present invention relates to network management, and more specifically, to virtual quantized congestion notification in a network with virtual switching devices.
In conventional physical networks, network equipment working at the lower levels was allowed to handle congestive events by simply dropping excess traffic. Providing reliability was instead left to the upper layers. Handling congestion by dropping frames comes at the expense of wasting network resources to transmit the frames. Hence, a lot of effort has been put into making the hardware network infrastructure lossless through the use of flow controls. In some physical networks, a lossless environment may be achieved using technologies such as Infiniband and Converged Enhanced Ethernet (CEE).
Employing lossless techniques to the virtual networking domain has provided a different set of challenges, especially to the virtual counterparts of the network equipment used inside the hypervisors to provide connectivity to the virtual machines. Flow control for a physical switching device controls the device as a single entity. Flow control for a physical switching device does not account for virtual devices hosted by the physical device. For example, a physical network interface card (NIC) may host multiple virtual machines through a common virtual switch and hypervisor. When the buffer queue of a virtual machine backs up, flow control may send a message to block incoming traffic to the backed up queue. However, since all buffer queues are running through the same hypervisor on the same physical NIC, the NIC is unable to distinguish one virtual machine's queue from the others. The result is that every queue receives the block command even though the other queues may have been running without issue. Thus, the efficiency of virtual switches may drop dramatically whenever congestion occurs in a buffer queue.